package com.robot.common;

import com.robot.common.utils.Config;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 全局路劲记录器（根据子模块进行分组）
 * <p>
 * 组名:app,login,perso
 * person=[personal_MainActivity,personal_MainActivity2]
 */
public class RecordPathManager {

    /**
     * 先理解成仓库
     * group:app,login,personal
     * <p>
     * person:
     * personal_MainActivity
     * personal_MainActivity2
     */
    private static Map<String, List<PathBean>> maps = new HashMap<>();

    /**
     * 将路径信息加入全局Map
     *
     * @param groupName 组名:如:"personal"
     * @param pathName  路径名，如:Personal_,MainActivity
     * @param clazz     类对象,如：Personal_MainActivity.class
     */
    public static void addGroupInfo(String groupName, String pathName, Class<?> clazz) {
        List<PathBean> list = maps.get(groupName);
        if (null == list) {
            list = new ArrayList<>();
            list.add(new PathBean(pathName, clazz));
            //存入仓库
            maps.put(groupName, list);
        } else {
            //存入仓库
            maps.put(groupName, list);
        }

    }

    /**
     * 只需要告诉我，组名，路径名，就能返回"要跳转的Class"
     * @param groupName 组名
     * @param pathName  路径名
     * @return 跳转到目标的class类对象
     */
    public static Class<?> startTargetActivity(String groupName, String pathName){
        List<PathBean>list=maps.get(groupName);
        if (list==null){
            Config.d("RecordPathManager>>>","startTargetActivity 此组名得到的信息，并没有注册尽量...");
            return null;
        }
        for (PathBean pathBean : list) {
            if (pathName.equalsIgnoreCase(pathBean.getPath())){
                return pathBean.getClazz();
            }
        }
        return null;
    }
}
